Organizations that rely upon network attached storage (“NAS”) systems frequently employ storage virtualization systems to maintain and manage data objects stored in these NAS systems. Data objects may include data files, directories and sub-directories. A typical NAS system may be associated with a client computer connected over a network. The client computer may be used to generate and interact with data objects that are stored on an associated NAS system. Data objects are thereby separated from the client computer so that they may be accessed by other computers on the network.
A storage virtualization system may be placed as an intermediary between the client computer and its associated NAS system or systems. Storage virtualization systems permit data migration, data synchronization and file system mirroring (“storage virtualization operations”) from one NAS device (“source server”, “source” or “src”) to another (“destination server,” “destination” or “dst”) without interrupting user access to either NAS device. The storage virtualization system ensures that data stored on one NAS device is seamlessly mirrored, moved or synchronized to a second NAS device. In addition, storage virtualization systems are designed to be transparent—the user is not made aware of any changes to the location of his or her data objects. Without storage virtualization, the NAS systems would need to be taken offline before performing storage virtualization operations, thereby denying user access to stored data objects. Since typical data stores are quite large and are constantly in use, the amount of downtime needed to complete such a file transfer can be very disruptive.
Client computers communicate with their associated NAS system by using the same network file system protocol. There are a number of different protocols in use by client computers and NAS devices. Two commonly used protocols include the Network File System (“NFS”) protocol, and the Common Internet File System (“CIFS”) protocol. Each protocol has its own conventions and syntax that distinguish it from other protocols, from the way the data objects are named, to how the data is managed, to the file attributes associated with each data object.
When a storage virtualization system is added, it will be configured to recognize that same protocol so that there are no incompatibilities to affect data transfer. The storage virtualization system will use NFS operations to transfer data objects from a NFS source server to a NFS destination server, and will use CIFS operations to transfer data objects from a CIFS source server to a CIFS destination server. In some cases, a NAS system may be capable of storing data objects in either protocol, also known as a mixed-protocol or “NFS+CIFS” NAS system. In a mixed-protocol NAS system, even though both NFS and CIFS protocols may be used to access and store data objects, commonly only one protocol will be used. If, however, both protocols are used to store data objects, then data objects stored using the NFS protocol may be separate from the data objects stored using the CIFS protocol. When associating a single or mixed-protocol NAS system with a storage virtualization system, the storage virtualization system will need to be configured to use the proper protocol.
Effective storage virtualization therefore requires complete compatibility with client computers and their associated NAS systems. Even though a storage virtualization system does not store the data objects that it is managing, it must be able to identify, locate and access the stored data objects. If the storage virtualization system cannot recognize or use the same protocol as either the client computer, the source NAS server or the destination NAS server, then there could be a significant risk of data loss or data corruption. Further, the storage virtualization may not be able to perform its operations.
While it is probably ideal for an organization to rely on a single protocol for its NAS systems, it is more common for an organization to use NAS systems with different protocols. This presents a problem for storage virtualization systems, because the different protocols are not cross-compatible. As such, the differences between protocols complicates the transfer of data objects from a NFS device to a CIFS device, and vice versa. This may effectively restrict the ability of the storage virtualization system to perform its functions and may prevent efficient data management. With organizations merging NAS systems or upgrading NAS systems, problems with incompatible network file system protocols are on the rise.
What is therefore needed is a way for storage virtualization systems to manage data objects on associated NAS systems regardless of the protocol used. What is a needed is a way to discover the stored data objects and build a mapping index of the stored data objects. What is further needed is way to ensure that any incompatibilities between the different protocols is resolved so that data objects stored in the mapping index may be referenced without regard to the protocol used.